package com.rc.web.converter;

import com.rc.pojo.dto.ill.IllAddDTO;
import com.rc.pojo.dto.ill.IllUpdateDTO;
import com.rc.pojo.po.Ill;
import com.rc.pojo.vo.ill.IllDetailVO;
import com.rc.pojo.vo.ill.IllListVO;
import com.rc.pojo.vo.ill.IllVO;
import org.mapstruct.Mapper;

/**
 * 疾病信息转换器
 * 使用MapStruct实现DTO、PO、VO之间的转换
 */
@Mapper(componentModel = "spring") // 声明为Spring组件
public interface IllConverter {

    /**
     * 将新增DTO转换为PO
     * @param dto 疾病新增数据传输对象
     * @return 疾病持久化对象
     */
    Ill addDtoToPo(IllAddDTO dto);

    /**
     * 将PO转换为列表VO
     * @param ill 疾病持久化对象
     * @return 疾病列表视图对象
     */
    IllListVO toListVO(Ill ill);

    /**
     * 将PO转换为详情VO
     * @param ill 疾病持久化对象
     * @return 疾病详情视图对象
     */
    IllDetailVO toDetailVO(Ill ill);

    /**
     * 将PO转换为VO
     * @param ill 疾病持久化对象
     * @return 疾病视图对象
     */
    IllVO toVO(Ill ill);

    /**
     * 将更新DTO转换为PO
     * @param dto 疾病更新数据传输对象
     * @return 疾病持久化对象
     */
    Ill updateDTO2Po(IllUpdateDTO dto);
}
